This description relates to processing data using dynamic partitioning. Computing systems that process data in parallel using multiple computing nodes (e.g., servers of a server cluster, and/or cores of a multi-core processor) may distribute data among those computing nodes using a partitioner. The data can be processed in “work units” representing individual units of work, which may be in the form of an individual record with values for any number of respective fields. Alternatively, work units may be in the form of metadata associated with records, information describing events to be processed, or any other information representing an individual portion of work to be performed. Each computing node may be assigned a different partition, and one or more workers (e.g., processes or threads) running on that computing node process work units within its assigned partition. As the record is processed the values in the fields may change. In some stages of the data processing, a work unit may be in the form of an individual record along with an identified task to be applied to that record. The partitioner uses a partitioning rule to distribute a particular work unit to a particular partition to which that work unit belongs. In some computing systems, the processing is performed in stages, where work units are repartitioned for a subsequent stage among the same partitions or a different number of partitions. For example, each computing node may have an input buffer for receiving input work units, and an output buffer for providing output work units. For each output buffer, a partitioner distributes output work units from the previous stage among input buffers to be processed as input work units for the next stage. Such repartitioning is typically performed after all of the computing for the previous stage has been completed. The partitioning rule used for such repartitioning may change, but the change may be required to occur between different sets of work units. In other words, for a given set of work units the partitioning rule is static, such that all work units in the given set have been fully partitioned using the current partitioning rule before any work units in a next set can be partitioned using a next partitioning rule.